package com.pinyougou.realm;

/*
	写程序的执行结果。

	林青霞都60了，我很伤心
	我是main方法
	Fu 静态代码块
	Fu 构造代码块
	Fu 构造方法
	Fu 构造代码块
	Fu 构造方法

	0.先加载FuDemo.class文件到方法区，打印静态代码块"林青霞都60了，我很伤心"
	1.然后再调用main方法，执行打印"我是main方法"
	2.新建对象s1时，加载Fu.class文件打印静态代码块"Fu 静态代码块"
	3.打印构造代码块"Fu 构造代码块"
	4.打印构造方法中"Fu 构造方法"
	5.新建对象s1时，【不用】加载Fu.class文件，【不】打印静态代码块"Fu 静态代码块"
	6.打印构造代码块"Fu 构造代码块"
	7.打印构造方法中"Fu 构造方法"


	【注意】类也是需要的时候才加载的！！
*/
class Fu {
    private String fuVar="hhh";
    static {
        System.out.println("1Fu 静态代码块");
    }

    {
        System.out.println("4Fu 构造代码块");
    }

    public Fu() {
        this.fuVar="构造方法初始化Fu变量";
        System.out.println("5" + fuVar);
        System.out.println("6Fu 构造方法");
    }
    public static void  fuMethod()
    {
        System.out.println("Fu 静态方法");
    }

    public static void main(String[] args) {
        System.out.println("3我是main方法");
        //Fu s1 = new Zi();

        Fu s2 = new Fu();
    }
}


public class Zi extends Fu{

    public Zi() {
        System.out.println("8Zi 构造方法");
    }
    static {
        System.out.println("2Zi 静态代码块");
    }

    {
        System.out.println("7Zi 构造代码块");
    }

    public static void  ziMethod()
    {
        System.out.println("Zi 静态方法");
    }


    public static void main(String[] args) {
        System.out.println("3我是main方法");
        Fu s1 = new Zi();

        //Fu s2 = new Fu();
    }
}
